<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Service\DataBase\Bak;
use Illuminate\Support\Facades\Config;

class BakSiteData extends Command
{
    // 备份网站数据库（可以重复执行）

    //  php artisan command:bak-site-data
    //  sudo -u www php /www/wwwroot/slh/laravel.test/artisan command:bak-site-data
    protected $signature = 'command:bak-site-data';

    protected $description = '备份网站数据库';

    public function __construct()
    {
        parent::__construct();
    }

    // 执行操作
    public function handle()
    {
        $this->info('执行备份数据库操作。。。。。');
        // 获取数据库
        $connect  = Config::get('database.default');
        $dataName = Config::get('database.connections.'.$connect.'.database');

        // 获取备份地址
        $ds      = DIRECTORY_SEPARATOR;
        $sqlPath = 'bak'.$ds.'sql'.$ds.date('Ym').$ds;
        $sqlPath = base_path($sqlPath);

        $this->info('备份数据到：'.$sqlPath);
        $this->info('备份数据库config的链接：'.$connect);
        // 备份数据库操作
        $bak = new Bak();
        $res = $bak->toBak($dataName, $sqlPath, $connect);
        $msg = $res ? '成功' : '失败';
        $this->info('执行备份数据库操作'.$msg.'！');

        return $res;
    }

}

